const util = require('../utils/bcc.js')
const suffix = '\r\n'
// 注意有些是函数，注意区别!!!
module.exports = {
	// 将配置存储FLASH
	saveFlash: '$PCAS00*01' + suffix,
	// 函数->传参->设置波特率:0=4800bps、1=9600bps、2=19200bps、3=38400bps、4=57600bps、5=115200bps
	setBaudRate: function (baud) {
		// $PCAS01,5*19\r\n
		let toReg = `$PCAS01,${String(baud)}*`
		let checksum = util.chk8xorAllStr(toReg)
		return `${toReg}${String(checksum)}` + suffix
	},
	// 设置定位更新率
	setHz: function (pl) {
		// $PCAS02,1000*1E\r\n
		let toReg = `$PCAS02,${String(pl)}*`
		let checksum = util.chk8xorAllStr(toReg)
		return `${toReg}${String(checksum)}` + suffix
	},
	// 设置停止哪一个NMEA语句，输入8个元素数组，每个数字代表某个语句每次定位输出次数
	setStop: function (typeList) {
		// $PCAS03,1,1,1,1,1,1,0,1*03
		// GGA,GLL,GSA,GSV,RMC,VTG,ZDA,TXT
		let str = '$PCAS03,' + typeList.join(',') + '*'
		let checksum = util.chk8xorAllStr(str)
		return `${str}${String(checksum)}` + suffix
	},
	// 配置工作模式
	// 1=GPS、2=BDS、3=GPS+BDS、4=GLONASS、5=GPS+GLONASS、6=BDS+GLONASS、7=GPS+BDS+GLONASS
	// $PCAS04,3*1A\r\n
	setMode: function (mode) {
		let str = '$PCAS04,' + mode + '*'
		let checksum = util.chk8xorAllStr(str)
		return `${str}${String(checksum)}` + suffix
	},
	// 设置NMEA协议类型
	setProtocal(mode) {
		// 2：兼容兼容 NMEA 4.1 以上版本，
		// 5：兼容中国交通运输信息中心的BDS/GPS双模协议,兼容NMEA2.3以上版本和NMEA4.0,为默认协议
		// 9：兼容单 GPS NMEA0183 协议，兼容 NMEA 2.2 版本
		let str = '$PCAS05,' + mode + '*'
		let checksum = util.chk8xorAllStr(str)
		return `${str}${String(checksum)}` + suffix
	},
	// 查询产品信息-查询多模接收机的工作模式
	checkProduct: '$PCAS06,2*19\r\n',
	// 接收机重启指令
	hotRestart: '$PCAS10,0*1C\r\n', // 热启动 - 不使用初始化信息，备份存储中的所有数据有效
	wenRestart: '$PCAS10,1*1D\r\n', // 温启动 - 不使用初始化信息，清除星历
	coldRestart: '$PCAS10,2*1E\r\n', // 冷启动 - 不使用初始化信息，清除备份存储中除配置外的所有数据
	ccRestart: '$PCAS10,3*14\r\n', // 出厂启动 - 清除内存所有数据，并将接收机复位 至出厂默认配置
	closeSerialPort: '$PCAS10,8*14\r\n', // 关闭串口响应
	openSerialPort: '$PCAS10,9*15\r\n', // 开启串口响应
	// 在线升级命令
	upgrade: '$PCAS20*03\r\n',
}
